package com.tyf.common.annotation;

import com.tyf.common.constant.Fetches;

import java.lang.annotation.*;

/**
 * 
 * @ClassName: ApiFetch<br>
 * @Description: api读取<br>
 * @author liutao<br>
 * @date 2016年11月19日下午1:38:22<br>
 *
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@SuppressWarnings("rawtypes")
public @interface ApiFetch {
	/**
	 * 当前外关联api的序号，针对一个api会获取多次情况；当需要关联多次，则需要设置不同的值
	 */
	String no() default "0";

	/**
	 * api类
	 */
	Class apiClass() default void.class;
	
	/**
	 * api名称
	 */
	String apiName() default "";
	
	/**
	 * 关联的字段，可支持多个
	 */
	String[] joinField() default {};
	
	/**
	 * 映射的字段名，未设置则为field本身
	 */
	String mappedName() default "";
	
	/**
	 * 调用的方法名
	 */
	String invokeMethod() default Fetches.findOneByNo;

	/**
	 * 本地缓存
	 */
	boolean localCache() default false;
}